﻿using System;

namespace DreamDriven.ObjectModel.Mvp
{
    /// <summary> 
    /// Used to define bindings between presenters and a views.
    /// </summary>
    [AttributeUsage(AttributeTargets.Class, AllowMultiple = true)]
    public sealed class PresenterBindingAttribute : Attribute
    {
        /// <summary>
        /// Initializes a new instance of the <see cref="PresenterBindingAttribute"/> class.
        /// </summary>
        /// <param name="presenterType">Type of the presenter.</param>
        public PresenterBindingAttribute(Type presenterType)
        {
            PresenterType = presenterType;
        }

        /// <summary>
        /// Gets or sets the type of the presenter.
        /// </summary>
        /// <value>The type of the presenter.</value>
        public Type PresenterType { get; private set; }

        /// <summary>
        /// Gets or sets the type of the view.
        /// </summary>
        /// <value>The type of the view.</value>
        public Type ViewType { get; set; }
        
    }
}